Termination of the given ITRSProblem could successfully be proven:



ITRS
  ↳ ITRStoQTRSProof

ITRS problem:
The following domains are used:

z

The TRS R consists of the following rules:

Cond_f(TRUE, x) → f(x)
f(x) → Cond_f(<@z(*@z(x, x), 0@z), x)

The set Q consists of the following terms:

Cond_f(TRUE, x0)
f(x0)


Represented integers and predefined function symbols by Terms

↳ ITRS
  ↳ ITRStoQTRSProof
QTRS
      ↳ DependencyPairsProof

Q restricted rewrite system:
The TRS R consists of the following rules:

Cond_f(true, x) → f(x)
f(x) → Cond_f(less_int(mult_int(x, x), pos(0)), x)
less_int(pos(0), pos(0)) → false
less_int(pos(0), neg(0)) → false
less_int(neg(0), pos(0)) → false
less_int(neg(0), neg(0)) → false
less_int(pos(0), pos(s(y))) → true
less_int(neg(0), pos(s(y))) → true
less_int(pos(0), neg(s(y))) → false
less_int(neg(0), neg(s(y))) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), neg(0)) → false
less_int(neg(s(x)), neg(0)) → true
less_int(pos(s(x)), neg(s(y))) → false
less_int(neg(s(x)), pos(s(y))) → true
less_int(pos(s(x)), pos(s(y))) → less_int(pos(x), pos(y))
less_int(neg(s(x)), neg(s(y))) → less_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))

The set Q consists of the following terms:

Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)


Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem:
Q DP problem:
The TRS P consists of the following rules:

COND_F(true, x) → F(x)
F(x) → COND_F(less_int(mult_int(x, x), pos(0)), x)
F(x) → LESS_INT(mult_int(x, x), pos(0))
F(x) → MULT_INT(x, x)
LESS_INT(pos(s(x)), pos(s(y))) → LESS_INT(pos(x), pos(y))
LESS_INT(neg(s(x)), neg(s(y))) → LESS_INT(neg(x), neg(y))
MULT_INT(pos(x), pos(y)) → MULT_NAT(x, y)
MULT_INT(pos(x), neg(y)) → MULT_NAT(x, y)
MULT_INT(neg(x), pos(y)) → MULT_NAT(x, y)
MULT_INT(neg(x), neg(y)) → MULT_NAT(x, y)
MULT_NAT(s(x), s(y)) → PLUS_NAT(mult_nat(x, s(y)), s(y))
MULT_NAT(s(x), s(y)) → MULT_NAT(x, s(y))
PLUS_NAT(s(x), y) → PLUS_NAT(x, y)

The TRS R consists of the following rules:

Cond_f(true, x) → f(x)
f(x) → Cond_f(less_int(mult_int(x, x), pos(0)), x)
less_int(pos(0), pos(0)) → false
less_int(pos(0), neg(0)) → false
less_int(neg(0), pos(0)) → false
less_int(neg(0), neg(0)) → false
less_int(pos(0), pos(s(y))) → true
less_int(neg(0), pos(s(y))) → true
less_int(pos(0), neg(s(y))) → false
less_int(neg(0), neg(s(y))) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), neg(0)) → false
less_int(neg(s(x)), neg(0)) → true
less_int(pos(s(x)), neg(s(y))) → false
less_int(neg(s(x)), pos(s(y))) → true
less_int(pos(s(x)), pos(s(y))) → less_int(pos(x), pos(y))
less_int(neg(s(x)), neg(s(y))) → less_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))

The set Q consists of the following terms:

Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)

We have to consider all minimal (P,Q,R)-chains.

↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
QDP
          ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

COND_F(true, x) → F(x)
F(x) → COND_F(less_int(mult_int(x, x), pos(0)), x)
F(x) → LESS_INT(mult_int(x, x), pos(0))
F(x) → MULT_INT(x, x)
LESS_INT(pos(s(x)), pos(s(y))) → LESS_INT(pos(x), pos(y))
LESS_INT(neg(s(x)), neg(s(y))) → LESS_INT(neg(x), neg(y))
MULT_INT(pos(x), pos(y)) → MULT_NAT(x, y)
MULT_INT(pos(x), neg(y)) → MULT_NAT(x, y)
MULT_INT(neg(x), pos(y)) → MULT_NAT(x, y)
MULT_INT(neg(x), neg(y)) → MULT_NAT(x, y)
MULT_NAT(s(x), s(y)) → PLUS_NAT(mult_nat(x, s(y)), s(y))
MULT_NAT(s(x), s(y)) → MULT_NAT(x, s(y))
PLUS_NAT(s(x), y) → PLUS_NAT(x, y)

The TRS R consists of the following rules:

Cond_f(true, x) → f(x)
f(x) → Cond_f(less_int(mult_int(x, x), pos(0)), x)
less_int(pos(0), pos(0)) → false
less_int(pos(0), neg(0)) → false
less_int(neg(0), pos(0)) → false
less_int(neg(0), neg(0)) → false
less_int(pos(0), pos(s(y))) → true
less_int(neg(0), pos(s(y))) → true
less_int(pos(0), neg(s(y))) → false
less_int(neg(0), neg(s(y))) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), neg(0)) → false
less_int(neg(s(x)), neg(0)) → true
less_int(pos(s(x)), neg(s(y))) → false
less_int(neg(s(x)), pos(s(y))) → true
less_int(pos(s(x)), pos(s(y))) → less_int(pos(x), pos(y))
less_int(neg(s(x)), neg(s(y))) → less_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))

The set Q consists of the following terms:

Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 5 SCCs with 7 less nodes.

↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
QDP
                ↳ UsableRulesProof
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

PLUS_NAT(s(x), y) → PLUS_NAT(x, y)

The TRS R consists of the following rules:

Cond_f(true, x) → f(x)
f(x) → Cond_f(less_int(mult_int(x, x), pos(0)), x)
less_int(pos(0), pos(0)) → false
less_int(pos(0), neg(0)) → false
less_int(neg(0), pos(0)) → false
less_int(neg(0), neg(0)) → false
less_int(pos(0), pos(s(y))) → true
less_int(neg(0), pos(s(y))) → true
less_int(pos(0), neg(s(y))) → false
less_int(neg(0), neg(s(y))) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), neg(0)) → false
less_int(neg(s(x)), neg(0)) → true
less_int(pos(s(x)), neg(s(y))) → false
less_int(neg(s(x)), pos(s(y))) → true
less_int(pos(s(x)), pos(s(y))) → less_int(pos(x), pos(y))
less_int(neg(s(x)), neg(s(y))) → less_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))

The set Q consists of the following terms:

Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
                ↳ UsableRulesProof
QDP
                    ↳ QReductionProof
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

PLUS_NAT(s(x), y) → PLUS_NAT(x, y)

R is empty.
The set Q consists of the following terms:

Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)



↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
QDP
                        ↳ QDPSizeChangeProof
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

PLUS_NAT(s(x), y) → PLUS_NAT(x, y)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
QDP
                ↳ UsableRulesProof
              ↳ QDP
              ↳ QDP
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

MULT_NAT(s(x), s(y)) → MULT_NAT(x, s(y))

The TRS R consists of the following rules:

Cond_f(true, x) → f(x)
f(x) → Cond_f(less_int(mult_int(x, x), pos(0)), x)
less_int(pos(0), pos(0)) → false
less_int(pos(0), neg(0)) → false
less_int(neg(0), pos(0)) → false
less_int(neg(0), neg(0)) → false
less_int(pos(0), pos(s(y))) → true
less_int(neg(0), pos(s(y))) → true
less_int(pos(0), neg(s(y))) → false
less_int(neg(0), neg(s(y))) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), neg(0)) → false
less_int(neg(s(x)), neg(0)) → true
less_int(pos(s(x)), neg(s(y))) → false
less_int(neg(s(x)), pos(s(y))) → true
less_int(pos(s(x)), pos(s(y))) → less_int(pos(x), pos(y))
less_int(neg(s(x)), neg(s(y))) → less_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))

The set Q consists of the following terms:

Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
QDP
                    ↳ QReductionProof
              ↳ QDP
              ↳ QDP
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

MULT_NAT(s(x), s(y)) → MULT_NAT(x, s(y))

R is empty.
The set Q consists of the following terms:

Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)



↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
QDP
                        ↳ QDPSizeChangeProof
              ↳ QDP
              ↳ QDP
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

MULT_NAT(s(x), s(y)) → MULT_NAT(x, s(y))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
QDP
                ↳ UsableRulesProof
              ↳ QDP
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

LESS_INT(neg(s(x)), neg(s(y))) → LESS_INT(neg(x), neg(y))

The TRS R consists of the following rules:

Cond_f(true, x) → f(x)
f(x) → Cond_f(less_int(mult_int(x, x), pos(0)), x)
less_int(pos(0), pos(0)) → false
less_int(pos(0), neg(0)) → false
less_int(neg(0), pos(0)) → false
less_int(neg(0), neg(0)) → false
less_int(pos(0), pos(s(y))) → true
less_int(neg(0), pos(s(y))) → true
less_int(pos(0), neg(s(y))) → false
less_int(neg(0), neg(s(y))) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), neg(0)) → false
less_int(neg(s(x)), neg(0)) → true
less_int(pos(s(x)), neg(s(y))) → false
less_int(neg(s(x)), pos(s(y))) → true
less_int(pos(s(x)), pos(s(y))) → less_int(pos(x), pos(y))
less_int(neg(s(x)), neg(s(y))) → less_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))

The set Q consists of the following terms:

Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
QDP
                    ↳ QReductionProof
              ↳ QDP
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

LESS_INT(neg(s(x)), neg(s(y))) → LESS_INT(neg(x), neg(y))

R is empty.
The set Q consists of the following terms:

Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)



↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
QDP
                        ↳ UsableRulesReductionPairsProof
              ↳ QDP
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

LESS_INT(neg(s(x)), neg(s(y))) → LESS_INT(neg(x), neg(y))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the usable rules with reduction pair processor [LPAR04] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules [FROCOS05] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well.

The following dependency pairs can be deleted:

LESS_INT(neg(s(x)), neg(s(y))) → LESS_INT(neg(x), neg(y))
No rules are removed from R.

Used ordering: POLO with Polynomial interpretation [POLO]:

POL(LESS_INT(x1, x2)) = 2·x1 + x2   
POL(neg(x1)) = x1   
POL(s(x1)) = 2·x1   



↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ UsableRulesReductionPairsProof
QDP
                            ↳ PisEmptyProof
              ↳ QDP
              ↳ QDP

Q DP problem:
P is empty.
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The TRS P is empty. Hence, there is no (P,Q,R) chain.

↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
QDP
                ↳ UsableRulesProof
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

LESS_INT(pos(s(x)), pos(s(y))) → LESS_INT(pos(x), pos(y))

The TRS R consists of the following rules:

Cond_f(true, x) → f(x)
f(x) → Cond_f(less_int(mult_int(x, x), pos(0)), x)
less_int(pos(0), pos(0)) → false
less_int(pos(0), neg(0)) → false
less_int(neg(0), pos(0)) → false
less_int(neg(0), neg(0)) → false
less_int(pos(0), pos(s(y))) → true
less_int(neg(0), pos(s(y))) → true
less_int(pos(0), neg(s(y))) → false
less_int(neg(0), neg(s(y))) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), neg(0)) → false
less_int(neg(s(x)), neg(0)) → true
less_int(pos(s(x)), neg(s(y))) → false
less_int(neg(s(x)), pos(s(y))) → true
less_int(pos(s(x)), pos(s(y))) → less_int(pos(x), pos(y))
less_int(neg(s(x)), neg(s(y))) → less_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))

The set Q consists of the following terms:

Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
QDP
                    ↳ QReductionProof
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

LESS_INT(pos(s(x)), pos(s(y))) → LESS_INT(pos(x), pos(y))

R is empty.
The set Q consists of the following terms:

Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)



↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
QDP
                        ↳ UsableRulesReductionPairsProof
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

LESS_INT(pos(s(x)), pos(s(y))) → LESS_INT(pos(x), pos(y))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the usable rules with reduction pair processor [LPAR04] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules [FROCOS05] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well.

The following dependency pairs can be deleted:

LESS_INT(pos(s(x)), pos(s(y))) → LESS_INT(pos(x), pos(y))
No rules are removed from R.

Used ordering: POLO with Polynomial interpretation [POLO]:

POL(LESS_INT(x1, x2)) = 2·x1 + x2   
POL(pos(x1)) = x1   
POL(s(x1)) = 2·x1   



↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ UsableRulesReductionPairsProof
QDP
                            ↳ PisEmptyProof
              ↳ QDP

Q DP problem:
P is empty.
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The TRS P is empty. Hence, there is no (P,Q,R) chain.

↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
QDP
                ↳ UsableRulesProof

Q DP problem:
The TRS P consists of the following rules:

F(x) → COND_F(less_int(mult_int(x, x), pos(0)), x)
COND_F(true, x) → F(x)

The TRS R consists of the following rules:

Cond_f(true, x) → f(x)
f(x) → Cond_f(less_int(mult_int(x, x), pos(0)), x)
less_int(pos(0), pos(0)) → false
less_int(pos(0), neg(0)) → false
less_int(neg(0), pos(0)) → false
less_int(neg(0), neg(0)) → false
less_int(pos(0), pos(s(y))) → true
less_int(neg(0), pos(s(y))) → true
less_int(pos(0), neg(s(y))) → false
less_int(neg(0), neg(s(y))) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), neg(0)) → false
less_int(neg(s(x)), neg(0)) → true
less_int(pos(s(x)), neg(s(y))) → false
less_int(neg(s(x)), pos(s(y))) → true
less_int(pos(s(x)), pos(s(y))) → less_int(pos(x), pos(y))
less_int(neg(s(x)), neg(s(y))) → less_int(neg(x), neg(y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(pos(x), neg(y)) → neg(mult_nat(x, y))
mult_int(neg(x), pos(y)) → neg(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))

The set Q consists of the following terms:

Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
QDP
                    ↳ QReductionProof

Q DP problem:
The TRS P consists of the following rules:

F(x) → COND_F(less_int(mult_int(x, x), pos(0)), x)
COND_F(true, x) → F(x)

The TRS R consists of the following rules:

mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
less_int(pos(0), pos(0)) → false
less_int(neg(0), pos(0)) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))

The set Q consists of the following terms:

Cond_f(true, x0)
f(x0)
less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

Cond_f(true, x0)
f(x0)



↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
QDP
                        ↳ QDPOrderProof

Q DP problem:
The TRS P consists of the following rules:

F(x) → COND_F(less_int(mult_int(x, x), pos(0)), x)
COND_F(true, x) → F(x)

The TRS R consists of the following rules:

mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
less_int(pos(0), pos(0)) → false
less_int(neg(0), pos(0)) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))

The set Q consists of the following terms:

less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)

We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [LPAR04].


The following pairs can be oriented strictly and are deleted.


COND_F(true, x) → F(x)
The remaining pairs can at least be oriented weakly.

F(x) → COND_F(less_int(mult_int(x, x), pos(0)), x)
Used ordering: Polynomial interpretation [POLO]:

POL(0) = 0   
POL(COND_F(x1, x2)) = x1   
POL(F(x1)) = 0   
POL(false) = 0   
POL(less_int(x1, x2)) = x1   
POL(mult_int(x1, x2)) = 0   
POL(mult_nat(x1, x2)) = 0   
POL(neg(x1)) = 1 + x1   
POL(plus_nat(x1, x2)) = 0   
POL(pos(x1)) = 0   
POL(s(x1)) = 1   
POL(true) = 1   

The following usable rules [FROCOS05] were oriented:

less_int(neg(0), pos(0)) → false
less_int(pos(0), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
less_int(pos(s(x)), pos(0)) → false
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))



↳ ITRS
  ↳ ITRStoQTRSProof
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ QDPOrderProof
QDP
                            ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

F(x) → COND_F(less_int(mult_int(x, x), pos(0)), x)

The TRS R consists of the following rules:

mult_int(pos(x), pos(y)) → pos(mult_nat(x, y))
mult_int(neg(x), neg(y)) → pos(mult_nat(x, y))
less_int(pos(0), pos(0)) → false
less_int(neg(0), pos(0)) → false
less_int(pos(s(x)), pos(0)) → false
less_int(neg(s(x)), pos(0)) → true
mult_nat(0, y) → 0
mult_nat(s(x), 0) → 0
mult_nat(s(x), s(y)) → plus_nat(mult_nat(x, s(y)), s(y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))

The set Q consists of the following terms:

less_int(pos(0), pos(0))
less_int(pos(0), neg(0))
less_int(neg(0), pos(0))
less_int(neg(0), neg(0))
less_int(pos(0), pos(s(x0)))
less_int(neg(0), pos(s(x0)))
less_int(pos(0), neg(s(x0)))
less_int(neg(0), neg(s(x0)))
less_int(pos(s(x0)), pos(0))
less_int(neg(s(x0)), pos(0))
less_int(pos(s(x0)), neg(0))
less_int(neg(s(x0)), neg(0))
less_int(pos(s(x0)), neg(s(x1)))
less_int(neg(s(x0)), pos(s(x1)))
less_int(pos(s(x0)), pos(s(x1)))
less_int(neg(s(x0)), neg(s(x1)))
mult_int(pos(x0), pos(x1))
mult_int(pos(x0), neg(x1))
mult_int(neg(x0), pos(x1))
mult_int(neg(x0), neg(x1))
mult_nat(0, x0)
mult_nat(s(x0), 0)
mult_nat(s(x0), s(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.